TDS Sensor and Arduino Interfacing

In this article, you will learn about TDS Sensor and Arduino Interfacing. TDS stands for Total Dissolved Solids and represents the amount of total dissolved solids (organic and inorganic substances) in water. TDS value is related to water quality. Typically, the higher the TDS value, the poorer the water quality. Pure water has a TDS value of 0, and the TDS value increases for increasing dissolved solids. But do remember that measuring the TDS value doesn’t provide you with the information on whether the dissolved solids are healthy for the human body or not. The below table provides the general idea of what the TDS value represents.

Levels of TDS (mg/l) TDS Rating
Less than 300 Excellent
300 – 600 Good
600 – 900 Fair
900 – 1200 Poor
Above 1200 Unacceptable

TDS sensors are used to measure the TDS value of the water. TDS sensor consists of two components i.e Control Unit and TDS probe. The Control Unit is not waterproof and the TDS sensor probe is waterproof which is immersed in water.

Features 

  1. Easy to Implement provides Analog output signal
  2. 3.3V/5V input voltage support
  3. Waterproof probe
  4. Arduino Compatibility

Specifications

  1. Input voltage: 3.3V / 5V
  2. Output Voltage: 0 ~ 2.3V
  3. Working Current current: 3 ~ 6mA
  4. TDS Measurement Range: 0 ~ 1000ppm
  5. Analog Interface

Components Required For TDS Sensor and Arduino Interfacing

  1. Arduino UNO/NANO × 1 
  2. TDS sensor with its probe × 1
  3. 16×2 I2C LCD × 1
  4. Connectors

Working Principle of TDS Sensor 

TDS sensors measure the electric charge discharge between the two needles of a sensor probe. When an excitation source is given to the sensor probe immersed in water electric charges are conducted by the ions of dissolved materials between the needles. These electric charges are measured by the controlling unit and the resulting TDS value in ppm (parts per million) is sent to the display. 

Circuit Description of TDS Sensor and Arduino Interfacing

TDS Sensor and Arduino Interfacing

TDS sensor consists of 3-pin VCC, GND, and an analog signal pin. Connect the VCC of the TDS sensor to the 5V or 3.3V of the Arduino board. The analog signal pin of the sensor is connected to the A0 analog pin of the Arduino board and the GND pin of both devices is also connected.

For the connection of the 16×2 I2C LCD, connect SDA and SCL pins to the A4 (SDA) and A5(SCL) pins of the Arduino board. The 5V and GND pins of the Arduino board are connected to the VDD and VSS pins of the display respectively.

For the proper measurement of the TDS value, the probe should not be too close to the water container otherwise it will affect the reading. TDS sensors are incapable of measuring the TDS value of the flowing water and TDS probes cannot be used in water above 70℃. This rating of the TDS probe depends on the probe used, so make sure to properly note it down.

Author Prototype of TDS Sensor and Arduino InterfacingSoftware Code: Software Code is written in Arduino programming language (C/C++) and is compiled using Arduino IDE. One library for I2C LCD is used. The software code measures the voltage from the TDS sensor, converts it into TDS value, and displayed it over LCD.

Leave a Comment